package cn.kgc.web.listener;

import javax.servlet.Servlet;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

//监听页面访问用户人数的监听器
public class UserCountListener implements HttpSessionListener{

    //当session创建时，自动进入
    public void sessionCreated(HttpSessionEvent event) {
        //获取ServletContext对象
        ServletContext ctx = event.getSession().getServletContext();
        //获取所有用户共享的数据---页面访问人数userCount
        Integer usersCount = (Integer) ctx.getAttribute("usersCount");
        if (null == usersCount){
            usersCount = 1;
        }else {
            usersCount++;
        }
        //将最新的用户访问人数重新放回到ServletContext中
        ctx.setAttribute("usersCount",usersCount);
        System.out.println("++++++++++++++++++++ session创建，进入sessionCreated方法 ++++++++++++++++++++");
    }

    //当session销毁时，自动进入
    public void sessionDestroyed(HttpSessionEvent event) {
        //获取ServletContext对象
        ServletContext ctx = event.getSession().getServletContext();
        //获取所有用户共享的数据---页面访问人数userCount
        Integer usersCount = (Integer) ctx.getAttribute("usersCount");
        if (null == usersCount){
            usersCount = 0;
        }else {
            usersCount--;
        }
        //将最新的用户访问人数重新放回到ServletContext中
        ctx.setAttribute("usersCount",usersCount);
    }
}
